<?php 

/*
 *  如果需要持久化 可以使用nosql的数据库
 *  
 *  http://www.oschina.net/p/memcached
 *  
 *  1. http://blog.csdn.net/column/details/memcached.html
 *  2. php相关的网上一堆
 *  	http://hi.baidu.com/xiaojiang/item/690e1c109307c74e3a176ee8
 *  
 *  

1. 安装(win7 要用管理员模式)
	a） 命令行安装memcache
		D:\P>memcached.exe -d install
		
	b) 启动 
		D:\P>memcached.exe -d start
		D:\P>memcached.exe -d shutdown 关闭
		
		运行-help可以查看是否安装成功
		
		failed to start service
		1） php的版本
		2） 如果在window版本里面的配置了服务启动的IP  检查一下启动的IP和当前IP是否一致，通过查看服务
		
	c) 查看状态
	
		telnet 192.168.1.104 11211 （不能使用127.0.0.1）
		
		（Win7默认没有安装telnet功能，所以你直接用telnet命令是用不了的；
		你可以去“控制面板”--》“程序”（在左下角）---》“打开或关闭Windows功能”，勾上“telnet客户端”，确定就可以正常使用telnet命令了。）
		
		stats 命令查看状态
		
		time:    1255537291                               服务器当前的unix时间戳
		total_items:    54                                     从服务器启动以后存储的items总数量
		connection_structures:    19                    服务器分配的连接构造数
		version:    1.2.6                                        memcache版本
		limit_maxbytes:    67108864                    分配给memcache的内存大小（字节）
		cmd_get:    1645                                      get命令（获取）总请求次数
		evictions:    0                                            为获取空闲内存而删除的items数（分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items）
		total_connections:    19                           从服务器启动以后曾经打开过的连接数
		bytes:    248723                                      当前服务器存储items占用的字节数
		threads:    1                                             当前线程数
		get_misses:    82                                      总未命中次数
		pointer_size:    32                                    当前操作系统的指针大小（32位系统一般是32bit）
		bytes_read:    490982                              总读取字节数（请求字节数）
		uptime:    161                                           服务器已经运行的秒数
		curr_connections:    18                             当前打开着的连接数
		pid:    2816                                               memcache服务器的进程ID
		bytes_written:    16517259                     总发送字节数（结果字节数）
		get_hits:    1563                                      总命中次数
		cmd_set:    54                                          set命令（保存）总请求次数
		curr_items:    28                                       服务器当前存储的items数量 
			
	d) 配置 php的memcache 
		把php_memcache.dll文件拷贝到php/ext文件夹下边。然后打开php.ini文件，
		增加一句话 extension = php_memcache.dll;
		重启后phpinfo();中能看到配置
		
		如果不成功，很多原因是memceche和php的版本不匹配
		
		
		

2. 配置
	a) memcache 需要设置缓存大小和连接数
	
		1） 关闭memcached服务。
		2） 进入注册表，找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server， 
			在其中有一个ImagePath项，值为"d:\memcached\memcached.exe" -d runservice，在后面加上-l 192.168.1.104 -m 3000 -c 2048。 
			必须使用IP  不能使用 127.0.0.1   -m 为内存大小    -c 为连接数
		3） 开启服务,通过telnet 的stats可以查看配置成功
	

3. 使用 （可以远程连接memcache）

	$memcache = new Memcache;
	$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");  // 或者用实际的IP
	$version = $memcache->getVersion();
	echo "Server's version: ".$version."\n";
	$tmp_object = new stdClass;
	$tmp_object->str_attr = 'test';
	$tmp_object->int_attr = 123;
	$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
	echo "Store data in the cache (data will expire in 10 seconds)\n";
	$get_result = $memcache->get('key');
	echo "Data from the cache:\n";
	var_dump($get_result);
	